package classes;

import interfaces.IAfficheur;
import interfaces.ICallable;
import interfaces.ICanal;
import interfaces.ICapteur;
import interfaces.IRunnable;
import interfaces.IScheduler;

import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;

public class CanalImpl implements ICanal{

	private IScheduler s;
	private IAfficheur afficheur;
	private ICapteur capteur;

	public CanalImpl(IScheduler scheduler, IAfficheur afficheur, ICapteur capteur){
		s = scheduler;
		this.afficheur = afficheur;
		this.capteur= capteur;


	}

	@Override
	public void update(ICapteur cp) {
		IRunnable runnable = new RunnableImpl(afficheur, this);
		s.schedule(runnable, 1, TimeUnit.SECONDS);
	}

	@Override
	public ScheduledFuture<?> getValue() {
		ICallable callable=new CallableImpl(capteur);
		ScheduledFuture<?> future=s.schedule(callable, 1, TimeUnit.SECONDS);
		return future;
	}


}
